Rounding is a common technique used in digital signal processing and floating point arithmetic computations performed by data processors. Rounding is often used to minimize error where a computation generates more bits of precision than can be easily stored by the data processor. Prior art data processors generally perform a rounding operation directly on the result of an arithmetic computation as part of execution of the arithmetic instruction itself.
A problem arises when it is necessary to perform precise computations on operands which are wider than the width of the arithmetic logic unit and registers in the data processor. A technique was required to allow rounding of wide operands, while preferably allowing the rounding point to be flexible, and while preferably utilizing as little circuitry as possible.